From 609e04ddcf626e6295b11260269ab5d0492a65f6 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sun, 28 Jun 2015 09:23:28 -0400 Subject: [PATCH] gtk-demo: Cosmetic changes Clean up the code of many examples in minor ways, fix some memory leaks, and avoid the use of dialogs where a regular toplevel works just as well. --- demos/gtk-demo/Makefile.am | 79 +------ demos/gtk-demo/assistant.c | 2 +- demos/gtk-demo/builder.c | 24 +-- demos/gtk-demo/button_box.c | 11 +- demos/gtk-demo/clipboard.c | 21 +- demos/gtk-demo/colorsel.c | 20 +- demos/gtk-demo/combobox.c | 15 +- demos/gtk-demo/css_accordion.c | 9 +- demos/gtk-demo/css_basics.c | 9 +- demos/gtk-demo/css_multiplebgs.c | 9 +- demos/gtk-demo/css_pixbufs.c | 17 +- demos/gtk-demo/css_shadows.c | 17 +- demos/gtk-demo/cursors.c | 9 +- demos/gtk-demo/dialog.c | 13 +- demos/gtk-demo/drawingarea.c | 3 +- demos/gtk-demo/editable_cells.c | 10 +- demos/gtk-demo/entry_buffer.c | 74 +++---- demos/gtk-demo/entry_completion.c | 20 +- demos/gtk-demo/event_axes.c | 5 +- demos/gtk-demo/expander.c | 2 + demos/gtk-demo/flowbox.c | 10 +- demos/gtk-demo/font-features.ui | 49 ++--- demos/gtk-demo/font_features.c | 11 +- demos/gtk-demo/gestures.c | 7 +- demos/gtk-demo/headerbar.c | 9 +- demos/gtk-demo/hypertext.c | 14 +- demos/gtk-demo/iconview.c | 5 +- demos/gtk-demo/iconview_edit.c | 9 +- demos/gtk-demo/images.c | 9 +- demos/gtk-demo/infobar.c | 14 +- demos/gtk-demo/links.c | 12 +- demos/gtk-demo/menus.c | 9 +- demos/gtk-demo/offscreen_window.c | 9 +- demos/gtk-demo/offscreen_window2.c | 9 +- demos/gtk-demo/overlay.c | 9 +- demos/gtk-demo/pagesetup.c | 5 +- demos/gtk-demo/panes.c | 9 +- demos/gtk-demo/pickers.c | 12 +- demos/gtk-demo/pixbufs.c | 6 +- demos/gtk-demo/popover.c | 5 +- demos/gtk-demo/revealer.c | 37 ++-- demos/gtk-demo/revealer.ui | 286 +++++++++++-------------- demos/gtk-demo/rotated_text.c | 16 +- demos/gtk-demo/search_entry.c | 26 +-- demos/gtk-demo/search_entry2.c | 16 +- demos/gtk-demo/sidebar.c | 3 +- demos/gtk-demo/sizegroup.c | 26 +-- demos/gtk-demo/spinner.c | 2 +- demos/gtk-demo/stack.c | 15 +- demos/gtk-demo/theming_style_classes.c | 18 +- demos/gtk-demo/transparent.c | 12 +- demos/gtk-demo/tree_store.c | 9 +- 52 files changed, 358 insertions(+), 699 deletions(-) diff --git a/demos/gtk-demo/Makefile.am b/demos/gtk-demo/Makefile.am index c6791ae28e..72ba875595 100644 --- a/demos/gtk-demo/Makefile.am +++ b/demos/gtk-demo/Makefile.am @@ -98,7 +98,7 @@ EXTRA_DIST += \ data/source.svg \ data/symbolic-source.svg \ demo.gresource.xml \ - $(RESOURCES) \ + $(resource_files) \ org.gtk.Demo.gschema.xml \ demos.h.win32 @@ -130,81 +130,10 @@ gtk3_demo_application_SOURCES = \ gtk3_demo_application_LDADD = $(LDADDS) -demo_resources.c: demo.gresource.xml $(RESOURCES) - $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) --generate-source $(srcdir)/demo.gresource.xml - -RESOURCES = \ - $(demos) \ - main.ui \ - application.ui \ - demo.ui \ - menus.ui \ - stack.ui \ - revealer.ui \ - theming.ui \ - listbox.ui \ - popover.ui \ - alphatest.png \ - apple-red.png \ - brick.png \ - brick2.png \ - background.jpg \ - floppybuddy.gif \ - glarea-fragment.glsl \ - glarea-vertex.glsl \ - gnome-applets.png \ - gnome-calendar.png \ - gnome-foot.png \ - gnome-fs-directory.png \ - gnome-fs-regular.png \ - gnome-gimp.png \ - gnome-gmush.png \ - gnome-gsame.png \ - gnu-keys.png \ - messages.txt \ - css_accordion.css \ - css_basics.css \ - css_multiplebgs.css \ - css_pixbufs.css \ - css_shadows.css \ - cssview.css \ - reset.css \ - alias_cursor.png \ - all_scroll_cursor.png \ - cell_cursor.png \ - col_resize_cursor.png \ - copy_cursor.png \ - crosshair_cursor.png \ - default_cursor.png \ - e_resize_cursor.png \ - ew_resize_cursor.png \ - grabbing_cursor.png \ - grab_cursor.png \ - hand_cursor.png \ - help_cursor.png \ - move_cursor.png \ - ne_resize_cursor.png \ - nesw_resize_cursor.png \ - none_cursor.png \ - no_drop_cursor.png \ - not_allowed_cursor.png \ - n_resize_cursor.png \ - ns_resize_cursor.png \ - nw_resize_cursor.png \ - nwse_resize_cursor.png \ - pointer_cursor.png \ - progress_cursor.png \ - row_resize_cursor.png \ - se_resize_cursor.png \ - s_resize_cursor.png \ - sw_resize_cursor.png \ - text_cursor.png \ - vertical_text_cursor.png \ - wait_cursor.png \ - w_resize_cursor.png \ - zoom_in_cursor.png \ - zoom_out_cursor.png +resource_files = $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir) --generate-dependencies $(builddir)/demo.gresource.xml) +demo_resources.c: demo.gresource.xml $(resource_files) + $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) --generate-source $(srcdir)/demo.gresource.xml iconthemedir = $(datadir)/icons/hicolor diff --git a/demos/gtk-demo/assistant.c b/demos/gtk-demo/assistant.c index b461171c65..6b8a0364ce 100644 --- a/demos/gtk-demo/assistant.c +++ b/demos/gtk-demo/assistant.c @@ -168,7 +168,7 @@ do_assistant (GtkWidget *do_widget) { assistant = gtk_assistant_new (); - gtk_window_set_default_size (GTK_WINDOW (assistant), -1, 300); + gtk_window_set_default_size (GTK_WINDOW (assistant), -1, 300); gtk_window_set_screen (GTK_WINDOW (assistant), gtk_widget_get_screen (do_widget)); diff --git a/demos/gtk-demo/builder.c b/demos/gtk-demo/builder.c index 33c86ac5d4..83399f24cc 100644 --- a/demos/gtk-demo/builder.c +++ b/demos/gtk-demo/builder.c @@ -5,16 +5,13 @@ #include -static GtkBuilder *builder; - static void quit_activate (GSimpleAction *action, GVariant *parameter, gpointer user_data) { - GtkWidget *window; + GtkWidget *window = user_data; - window = GTK_WIDGET (gtk_builder_get_object (builder, "window1")); gtk_widget_destroy (window); } @@ -23,8 +20,11 @@ about_activate (GSimpleAction *action, GVariant *parameter, gpointer user_data) { + GtkWidget *window = user_data; + GtkBuilder *builder; GtkWidget *about_dlg; + builder = g_object_get_data (G_OBJECT (window), "builder"); about_dlg = GTK_WIDGET (gtk_builder_get_object (builder, "aboutdialog1")); gtk_dialog_run (GTK_DIALOG (about_dlg)); gtk_widget_hide (about_dlg); @@ -55,6 +55,8 @@ do_builder (GtkWidget *do_widget) if (!window) { + GtkBuilder *builder; + builder = gtk_builder_new_from_resource ("/builder/demo.ui"); gtk_builder_connect_signals (builder, NULL); @@ -69,7 +71,7 @@ do_builder (GtkWidget *do_widget) actions = (GActionGroup*)g_simple_action_group_new (); g_action_map_add_action_entries (G_ACTION_MAP (actions), win_entries, G_N_ELEMENTS (win_entries), - NULL); + window); gtk_widget_insert_action_group (window, "win", actions); accel_group = gtk_accel_group_new (); gtk_window_add_accel_group (GTK_WINDOW (window), accel_group); @@ -109,18 +111,14 @@ do_builder (GtkWidget *do_widget) item = (GtkWidget*)gtk_builder_get_object (builder, "about_item"); gtk_widget_add_accelerator (item, "activate", accel_group, GDK_KEY_F7, 0, GTK_ACCEL_VISIBLE); + + g_object_set_data_full (G_OBJECT(window), "builder", builder, g_object_unref); } if (!gtk_widget_get_visible (window)) - { - gtk_widget_show_all (window); - } + gtk_widget_show_all (window); else - { - gtk_widget_destroy (window); - window = NULL; - } - + gtk_widget_destroy (window); return window; } diff --git a/demos/gtk-demo/button_box.c b/demos/gtk-demo/button_box.c index c99bbb79dd..7d383d383f 100644 --- a/demos/gtk-demo/button_box.c +++ b/demos/gtk-demo/button_box.c @@ -56,7 +56,7 @@ do_button_box (GtkWidget *do_widget) window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); - gtk_window_set_title (GTK_WINDOW (window), "Button Boxes demo"); + gtk_window_set_title (GTK_WINDOW (window), "Button Boxes"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), @@ -129,14 +129,9 @@ do_button_box (GtkWidget *do_widget) } if (!gtk_widget_get_visible (window)) - { - gtk_widget_show_all (window); - } + gtk_widget_show_all (window); else - { - gtk_widget_destroy (window); - window = NULL; - } + gtk_widget_destroy (window); return window; } diff --git a/demos/gtk-demo/clipboard.c b/demos/gtk-demo/clipboard.c index e4b882e57a..f04a203bb0 100644 --- a/demos/gtk-demo/clipboard.c +++ b/demos/gtk-demo/clipboard.c @@ -13,8 +13,6 @@ #include #include -static GtkWidget *window = NULL; - void copy_button_clicked (GtkWidget *button, gpointer user_data) @@ -107,12 +105,12 @@ drag_begin (GtkWidget *widget, } void -drag_data_get (GtkWidget *widget, - GdkDragContext *context, - GtkSelectionData *selection_data, - guint info, - guint time, - gpointer data) +drag_data_get (GtkWidget *widget, + GdkDragContext *context, + GtkSelectionData *selection_data, + guint info, + guint time, + gpointer data) { GdkPixbuf *pixbuf; @@ -202,6 +200,8 @@ button_press (GtkWidget *widget, GtkWidget * do_clipboard (GtkWidget *do_widget) { + static GtkWidget *window = NULL; + if (!window) { GtkWidget *vbox, *hbox; @@ -325,10 +325,7 @@ do_clipboard (GtkWidget *do_widget) if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else - { - gtk_widget_destroy (window); - window = NULL; - } + gtk_widget_destroy (window); return window; } diff --git a/demos/gtk-demo/colorsel.c b/demos/gtk-demo/colorsel.c index 8f0cc188c2..c00d50357d 100644 --- a/demos/gtk-demo/colorsel.c +++ b/demos/gtk-demo/colorsel.c @@ -32,9 +32,7 @@ response_cb (GtkDialog *dialog, gpointer user_data) { if (response_id == GTK_RESPONSE_OK) - { - gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (dialog), &color); - } + gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (dialog), &color); gtk_widget_destroy (GTK_WIDGET (dialog)); } @@ -49,10 +47,8 @@ change_color_callback (GtkWidget *button, gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (dialog), &color); - g_signal_connect (dialog, - "response", - G_CALLBACK (response_cb), - NULL); + g_signal_connect (dialog, "response", + G_CALLBACK (response_cb), NULL); gtk_widget_show_all (dialog); } @@ -88,7 +84,6 @@ do_colorsel (GtkWidget *do_widget) * Create the color swatch area */ - frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, 0); @@ -113,14 +108,9 @@ do_colorsel (GtkWidget *do_widget) } if (!gtk_widget_get_visible (window)) - { - gtk_widget_show_all (window); - } + gtk_widget_show_all (window); else - { - gtk_widget_destroy (window); - window = NULL; - } + gtk_widget_destroy (window); return window; } diff --git a/demos/gtk-demo/combobox.c b/demos/gtk-demo/combobox.c index dec9a0636a..5bdaf02ab5 100644 --- a/demos/gtk-demo/combobox.c +++ b/demos/gtk-demo/combobox.c @@ -321,8 +321,7 @@ do_combobox (GtkWidget *do_widget) gtk_window_set_title (GTK_WINDOW (window), "Combo Boxes"); g_signal_connect (window, "destroy", - G_CALLBACK (gtk_widget_destroyed), - &window); + G_CALLBACK (gtk_widget_destroyed), &window); gtk_container_set_border_width (GTK_CONTAINER (window), 10); @@ -400,8 +399,7 @@ do_combobox (GtkWidget *do_widget) gtk_tree_path_free (path); gtk_combo_box_set_active_iter (GTK_COMBO_BOX (combo), &iter); - /* A GtkComboBoxEntry with validation. - */ + /* A GtkComboBoxEntry with validation */ frame = gtk_frame_new ("Editable"); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); @@ -441,14 +439,9 @@ do_combobox (GtkWidget *do_widget) } if (!gtk_widget_get_visible (window)) - { - gtk_widget_show_all (window); - } + gtk_widget_show_all (window); else - { - gtk_widget_destroy (window); - window = NULL; - } + gtk_widget_destroy (window); return window; } diff --git a/demos/gtk-demo/css_accordion.c b/demos/gtk-demo/css_accordion.c index 8c3dae70ef..2afa6b57bb 100644 --- a/demos/gtk-demo/css_accordion.c +++ b/demos/gtk-demo/css_accordion.c @@ -6,8 +6,6 @@ #include -static GtkWidget *window = NULL; - static void apply_css (GtkWidget *widget, GtkStyleProvider *provider) { @@ -19,6 +17,8 @@ apply_css (GtkWidget *widget, GtkStyleProvider *provider) GtkWidget * do_css_accordion (GtkWidget *do_widget) { + static GtkWidget *window = NULL; + if (!window) { GtkWidget *container, *child; @@ -63,10 +63,7 @@ do_css_accordion (GtkWidget *do_widget) if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else - { - gtk_widget_destroy (window); - window = NULL; - } + gtk_widget_destroy (window); return window; } diff --git a/demos/gtk-demo/css_basics.c b/demos/gtk-demo/css_basics.c index 6bc245fe9e..1016abadc2 100644 --- a/demos/gtk-demo/css_basics.c +++ b/demos/gtk-demo/css_basics.c @@ -7,8 +7,6 @@ #include -static GtkWidget *window = NULL; - static void show_parsing_error (GtkCssProvider *provider, GtkCssSection *section, @@ -64,6 +62,8 @@ apply_css (GtkWidget *widget, GtkStyleProvider *provider) GtkWidget * do_css_basics (GtkWidget *do_widget) { + static GtkWidget *window = NULL; + if (!window) { GtkWidget *container, *child; @@ -112,10 +112,7 @@ do_css_basics (GtkWidget *do_widget) if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else - { - gtk_widget_destroy (window); - window = NULL; - } + gtk_widget_destroy (window); return window; } diff --git a/demos/gtk-demo/css_multiplebgs.c b/demos/gtk-demo/css_multiplebgs.c index c10a5cac63..a5d2e0f48b 100644 --- a/demos/gtk-demo/css_multiplebgs.c +++ b/demos/gtk-demo/css_multiplebgs.c @@ -7,8 +7,6 @@ #include -static GtkWidget *window = NULL; - static void show_parsing_error (GtkCssProvider *provider, GtkCssSection *section, @@ -82,6 +80,8 @@ apply_css (GtkWidget *widget, GtkStyleProvider *provider) GtkWidget * do_css_multiplebgs (GtkWidget *do_widget) { + static GtkWidget *window = NULL; + if (!window) { GtkWidget *paned, *container, *child; @@ -163,10 +163,7 @@ do_css_multiplebgs (GtkWidget *do_widget) if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else - { - gtk_widget_destroy (window); - window = NULL; - } + gtk_widget_destroy (window); return window; } diff --git a/demos/gtk-demo/css_pixbufs.c b/demos/gtk-demo/css_pixbufs.c index 360c0d5049..45dee45486 100644 --- a/demos/gtk-demo/css_pixbufs.c +++ b/demos/gtk-demo/css_pixbufs.c @@ -6,8 +6,6 @@ #include -static GtkWidget *window = NULL; - static void show_parsing_error (GtkCssProvider *provider, GtkCssSection *section, @@ -63,6 +61,8 @@ apply_css (GtkWidget *widget, GtkStyleProvider *provider) GtkWidget * do_css_pixbufs (GtkWidget *do_widget) { + static GtkWidget *window = NULL; + if (!window) { GtkWidget *paned, *container, *child; @@ -95,15 +95,13 @@ do_css_pixbufs (GtkWidget *do_widget) NULL); provider = GTK_STYLE_PROVIDER (gtk_css_provider_new ()); - + container = gtk_scrolled_window_new (NULL, NULL); gtk_container_add (GTK_CONTAINER (paned), container); child = gtk_text_view_new_with_buffer (text); gtk_container_add (GTK_CONTAINER (container), child); - g_signal_connect (text, - "changed", - G_CALLBACK (css_text_changed), - provider); + g_signal_connect (text, "changed", + G_CALLBACK (css_text_changed), provider); bytes = g_resources_lookup_data ("/css_pixbufs/gtk.css", 0, NULL); gtk_text_buffer_set_text (text, g_bytes_get_data (bytes, NULL), g_bytes_get_size (bytes)); @@ -120,10 +118,7 @@ do_css_pixbufs (GtkWidget *do_widget) if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else - { - gtk_widget_destroy (window); - window = NULL; - } + gtk_widget_destroy (window); return window; } diff --git a/demos/gtk-demo/css_shadows.c b/demos/gtk-demo/css_shadows.c index a4b5497174..ae2392e0bf 100644 --- a/demos/gtk-demo/css_shadows.c +++ b/demos/gtk-demo/css_shadows.c @@ -5,8 +5,6 @@ #include -static GtkWidget *window = NULL; - static void show_parsing_error (GtkCssProvider *provider, GtkCssSection *section, @@ -86,6 +84,8 @@ create_toolbar (void) GtkWidget * do_css_shadows (GtkWidget *do_widget) { + static GtkWidget *window = NULL; + if (!window) { GtkWidget *paned, *container, *child; @@ -117,15 +117,13 @@ do_css_shadows (GtkWidget *do_widget) NULL); provider = GTK_STYLE_PROVIDER (gtk_css_provider_new ()); - + container = gtk_scrolled_window_new (NULL, NULL); gtk_container_add (GTK_CONTAINER (paned), container); child = gtk_text_view_new_with_buffer (text); gtk_container_add (GTK_CONTAINER (container), child); - g_signal_connect (text, - "changed", - G_CALLBACK (css_text_changed), - provider); + g_signal_connect (text, "changed", + G_CALLBACK (css_text_changed), provider); bytes = g_resources_lookup_data ("/css_shadows/gtk.css", 0, NULL); gtk_text_buffer_set_text (text, g_bytes_get_data (bytes, NULL), g_bytes_get_size (bytes)); @@ -142,10 +140,7 @@ do_css_shadows (GtkWidget *do_widget) if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else - { - gtk_widget_destroy (window); - window = NULL; - } + gtk_widget_destroy (window); return window; } diff --git a/demos/gtk-demo/cursors.c b/demos/gtk-demo/cursors.c index 1ccb580f27..eb922a3ef4 100644 --- a/demos/gtk-demo/cursors.c +++ b/demos/gtk-demo/cursors.c @@ -152,14 +152,9 @@ do_cursors (GtkWidget *do_widget) } if (!gtk_widget_get_visible (window)) - { - gtk_widget_show_all (window); - } + gtk_widget_show_all (window); else - { - gtk_widget_destroy (window); - window = NULL; - } + gtk_widget_destroy (window); return window; diff --git a/demos/gtk-demo/dialog.c b/demos/gtk-demo/dialog.c index 081bbe38f4..0eb1c62397 100644 --- a/demos/gtk-demo/dialog.c +++ b/demos/gtk-demo/dialog.c @@ -111,7 +111,9 @@ do_dialog (GtkWidget *do_widget) gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Dialogs and Message Boxes"); - g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); + g_signal_connect (window, "destroy", + G_CALLBACK (gtk_widget_destroyed), &window); + gtk_container_set_border_width (GTK_CONTAINER (window), 8); frame = gtk_frame_new ("Dialogs"); @@ -163,14 +165,9 @@ do_dialog (GtkWidget *do_widget) } if (!gtk_widget_get_visible (window)) - { - gtk_widget_show_all (window); - } + gtk_widget_show_all (window); else - { - gtk_widget_destroy (window); - window = NULL; - } + gtk_widget_destroy (window); return window; } diff --git a/demos/gtk-demo/drawingarea.c b/demos/gtk-demo/drawingarea.c index c7bbcae313..3b7da92dcd 100644 --- a/demos/gtk-demo/drawingarea.c +++ b/demos/gtk-demo/drawingarea.c @@ -212,7 +212,8 @@ do_drawingarea (GtkWidget *do_widget) gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Drawing Area"); - g_signal_connect (window, "destroy", G_CALLBACK (close_window), NULL); + g_signal_connect (window, "destroy", + G_CALLBACK (close_window), NULL); gtk_container_set_border_width (GTK_CONTAINER (window), 8); diff --git a/demos/gtk-demo/editable_cells.c b/demos/gtk-demo/editable_cells.c index dd8a970d66..f57ae5cdfe 100644 --- a/demos/gtk-demo/editable_cells.c +++ b/demos/gtk-demo/editable_cells.c @@ -14,8 +14,6 @@ #include #include -static GtkWidget *window = NULL; - typedef struct { gint number; @@ -335,6 +333,8 @@ add_columns (GtkTreeView *treeview, GtkWidget * do_editable_cells (GtkWidget *do_widget) { + static GtkWidget *window = NULL; + if (!window) { GtkWidget *vbox; @@ -345,7 +345,6 @@ do_editable_cells (GtkWidget *do_widget) GtkTreeModel *items_model; GtkTreeModel *numbers_model; - /* create window, etc */ window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); @@ -406,10 +405,7 @@ do_editable_cells (GtkWidget *do_widget) if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else - { - gtk_widget_destroy (window); - window = NULL; - } + gtk_widget_destroy (window); return window; } diff --git a/demos/gtk-demo/entry_buffer.c b/demos/gtk-demo/entry_buffer.c index 7774467863..d4863e3896 100644 --- a/demos/gtk-demo/entry_buffer.c +++ b/demos/gtk-demo/entry_buffer.c @@ -8,56 +8,48 @@ #include #include -static GtkWidget *window = NULL; - GtkWidget * do_entry_buffer (GtkWidget *do_widget) { - GtkWidget *content_area; + static GtkWidget *window = NULL; GtkWidget *vbox; GtkWidget *label; GtkWidget *entry; GtkEntryBuffer *buffer; if (!window) - { - window = gtk_dialog_new_with_buttons ("Entry Buffer", - GTK_WINDOW (do_widget), - 0, - _("_Close"), - GTK_RESPONSE_NONE, - NULL); - gtk_window_set_resizable (GTK_WINDOW (window), FALSE); - - g_signal_connect (window, "response", - G_CALLBACK (gtk_widget_destroy), NULL); - g_signal_connect (window, "destroy", - G_CALLBACK (gtk_widget_destroyed), &window); - - content_area = gtk_dialog_get_content_area (GTK_DIALOG (window)); - - vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); - gtk_box_pack_start (GTK_BOX (content_area), vbox, TRUE, TRUE, 0); - gtk_container_set_border_width (GTK_CONTAINER (vbox), 5); - - label = gtk_label_new (NULL); - gtk_label_set_markup (GTK_LABEL (label), "Entries share a buffer. Typing in one is reflected in the other."); - gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); - - /* Create a buffer */ - buffer = gtk_entry_buffer_new (NULL, 0); - - /* Create our first entry */ - entry = gtk_entry_new_with_buffer (buffer); - gtk_box_pack_start (GTK_BOX (vbox), entry, FALSE, FALSE, 0); - - /* Create the second entry */ - entry = gtk_entry_new_with_buffer (buffer); - gtk_entry_set_visibility (GTK_ENTRY (entry), FALSE); - gtk_box_pack_start (GTK_BOX (vbox), entry, FALSE, FALSE, 0); - - g_object_unref (buffer); - } + { + window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_window_set_screen (GTK_WINDOW (window), + gtk_widget_get_screen (do_widget)); + gtk_window_set_title (GTK_WINDOW (window), "Entry Buffer"); + gtk_window_set_resizable (GTK_WINDOW (window), FALSE); + g_signal_connect (window, "destroy", + G_CALLBACK (gtk_widget_destroyed), &window); + + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); + gtk_container_add (GTK_CONTAINER (window), vbox); + gtk_container_set_border_width (GTK_CONTAINER (vbox), 5); + + label = gtk_label_new (NULL); + gtk_label_set_markup (GTK_LABEL (label), + "Entries share a buffer. Typing in one is reflected in the other."); + gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); + + /* Create a buffer */ + buffer = gtk_entry_buffer_new (NULL, 0); + + /* Create our first entry */ + entry = gtk_entry_new_with_buffer (buffer); + gtk_box_pack_start (GTK_BOX (vbox), entry, FALSE, FALSE, 0); + + /* Create the second entry */ + entry = gtk_entry_new_with_buffer (buffer); + gtk_entry_set_visibility (GTK_ENTRY (entry), FALSE); + gtk_box_pack_start (GTK_BOX (vbox), entry, FALSE, FALSE, 0); + + g_object_unref (buffer); + } if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); diff --git a/demos/gtk-demo/entry_completion.c b/demos/gtk-demo/entry_completion.c index 301f5d7ea0..cb822356b5 100644 --- a/demos/gtk-demo/entry_completion.c +++ b/demos/gtk-demo/entry_completion.c @@ -8,8 +8,6 @@ #include #include -static GtkWidget *window = NULL; - /* Creates a tree model containing the completions */ GtkTreeModel * create_completion_model (void) @@ -38,7 +36,7 @@ create_completion_model (void) GtkWidget * do_entry_completion (GtkWidget *do_widget) { - GtkWidget *content_area; + static GtkWidget *window = NULL; GtkWidget *vbox; GtkWidget *label; GtkWidget *entry; @@ -47,23 +45,17 @@ do_entry_completion (GtkWidget *do_widget) if (!window) { - window = gtk_dialog_new_with_buttons ("Entry Completion", - GTK_WINDOW (do_widget), - 0, - _("_Close"), - GTK_RESPONSE_NONE, - NULL); + window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_window_set_screen (GTK_WINDOW (window), + gtk_widget_get_screen (do_widget)); + gtk_window_set_title (GTK_WINDOW (window), "Entry Completion"); gtk_window_set_resizable (GTK_WINDOW (window), FALSE); - g_signal_connect (window, "response", - G_CALLBACK (gtk_widget_destroy), NULL); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); - content_area = gtk_dialog_get_content_area (GTK_DIALOG (window)); - vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); - gtk_box_pack_start (GTK_BOX (content_area), vbox, TRUE, TRUE, 0); + gtk_container_add (GTK_CONTAINER (window), vbox); gtk_container_set_border_width (GTK_CONTAINER (vbox), 5); label = gtk_label_new (NULL); diff --git a/demos/gtk-demo/event_axes.c b/demos/gtk-demo/event_axes.c index 7c77d18372..bc31f53308 100644 --- a/demos/gtk-demo/event_axes.c +++ b/demos/gtk-demo/event_axes.c @@ -412,10 +412,7 @@ do_event_axes (GtkWidget *toplevel) if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else - { - gtk_widget_destroy (window); - window = NULL; - } + gtk_widget_destroy (window); return window; } diff --git a/demos/gtk-demo/expander.c b/demos/gtk-demo/expander.c index bc40b542af..2a2dff8b95 100644 --- a/demos/gtk-demo/expander.c +++ b/demos/gtk-demo/expander.c @@ -3,6 +3,8 @@ * GtkExpander allows to provide additional content that is initially hidden. * This is also known as "disclosure triangle". * + * This example also shows how to make the window resizable only if the expander + * is expanded. */ #include diff --git a/demos/gtk-demo/flowbox.c b/demos/gtk-demo/flowbox.c index 38ce3c06b0..863838db4f 100644 --- a/demos/gtk-demo/flowbox.c +++ b/demos/gtk-demo/flowbox.c @@ -10,8 +10,6 @@ #include #include -static GtkWidget *window = NULL; - static gboolean draw_color (GtkWidget *drawingarea, cairo_t *cr, @@ -46,6 +44,7 @@ color_swatch_new (const gchar *color) GtkWidget * do_flowbox (GtkWidget *do_widget) { + static GtkWidget *window = NULL; GtkWidget *scrolled, *flowbox; const gchar *colors[] = { "AliceBlue", @@ -726,8 +725,7 @@ do_flowbox (GtkWidget *do_widget) gtk_window_set_default_size (GTK_WINDOW (window), 400, 600); g_signal_connect (window, "destroy", - G_CALLBACK (gtk_widget_destroyed), - &window); + G_CALLBACK (gtk_widget_destroyed), &window); scrolled = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); @@ -740,9 +738,7 @@ do_flowbox (GtkWidget *do_widget) gtk_container_add (GTK_CONTAINER (window), scrolled); for (i = 0; colors[i]; i++) - { - gtk_container_add (GTK_CONTAINER (flowbox), color_swatch_new (colors[i])); - } + gtk_container_add (GTK_CONTAINER (flowbox), color_swatch_new (colors[i])); gtk_widget_show_all (scrolled); } diff --git a/demos/gtk-demo/font-features.ui b/demos/gtk-demo/font-features.ui index b378a10005..d271515304 100644 --- a/demos/gtk-demo/font-features.ui +++ b/demos/gtk-demo/font-features.ui @@ -49,10 +49,7 @@ True False - 10 - 10 - 10 - 10 + 10 vertical 6 @@ -77,8 +74,8 @@ True False - 20 - 20 + 20 + 20 10 vertical @@ -148,8 +145,8 @@ True False - 20 - 20 + 20 + 20 10 vertical @@ -348,8 +345,8 @@ True False - 20 - 20 + 20 + 20 10 vertical @@ -462,8 +459,8 @@ True False - 20 - 20 + 20 + 20 10 vertical @@ -543,8 +540,8 @@ True False - 20 - 20 + 20 + 20 10 vertical @@ -624,8 +621,8 @@ True False - 20 - 20 + 20 + 20 10 vertical @@ -705,8 +702,8 @@ True False - 20 - 20 + 20 + 20 10 vertical @@ -819,8 +816,8 @@ True False - 20 - 20 + 20 + 20 10 vertical @@ -1019,8 +1016,8 @@ True False - 20 - 20 + 20 + 20 10 vertical @@ -1276,8 +1273,8 @@ True - 20 - 20 + 20 + 20 20 20 @@ -1322,8 +1319,8 @@ True False - 20 - 20 + 20 + 20 20 0 diff --git a/demos/gtk-demo/font_features.c b/demos/gtk-demo/font_features.c index 4d4a53b069..ac1492e20f 100644 --- a/demos/gtk-demo/font_features.c +++ b/demos/gtk-demo/font_features.c @@ -189,17 +189,14 @@ do_font_features (GtkWidget *do_widget) g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); + + g_object_unref (builder); } if (!gtk_widget_get_visible (window)) - { - gtk_window_present (GTK_WINDOW (window)); - } + gtk_window_present (GTK_WINDOW (window)); else - { - gtk_widget_destroy (window); - window = NULL; - } + gtk_widget_destroy (window); return window; } diff --git a/demos/gtk-demo/gestures.c b/demos/gtk-demo/gestures.c index 55d1ae0106..b5a29583c2 100644 --- a/demos/gtk-demo/gestures.c +++ b/demos/gtk-demo/gestures.c @@ -7,7 +7,6 @@ #include -static GtkWidget *window = NULL; static GtkGesture *rotate = NULL; static GtkGesture *zoom = NULL; static gdouble swipe_x = 0; @@ -132,6 +131,7 @@ drawing_area_draw (GtkWidget *widget, GtkWidget * do_gestures (GtkWidget *do_widget) { + static GtkWidget *window = NULL; GtkWidget *drawing_area; GtkGesture *gesture; @@ -190,10 +190,7 @@ do_gestures (GtkWidget *do_widget) if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else - { - gtk_widget_destroy (window); - window = NULL; - } + gtk_widget_destroy (window); return window; } diff --git a/demos/gtk-demo/headerbar.c b/demos/gtk-demo/headerbar.c index 64356c8917..2bf99a2f9c 100644 --- a/demos/gtk-demo/headerbar.c +++ b/demos/gtk-demo/headerbar.c @@ -58,14 +58,9 @@ do_headerbar (GtkWidget *do_widget) } if (!gtk_widget_get_visible (window)) - { - gtk_widget_show_all (window); - } + gtk_widget_show_all (window); else - { - gtk_widget_destroy (window); - window = NULL; - } + gtk_widget_destroy (window); return window; } diff --git a/demos/gtk-demo/hypertext.c b/demos/gtk-demo/hypertext.c index 7b541ea9dc..28d605a273 100644 --- a/demos/gtk-demo/hypertext.c +++ b/demos/gtk-demo/hypertext.c @@ -258,15 +258,14 @@ do_hypertext (GtkWidget *do_widget) regular_cursor = gdk_cursor_new_for_display (gtk_widget_get_display (do_widget), GDK_XTERM); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_window_set_title (GTK_WINDOW (window), "Hypertext"); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); - gtk_window_set_default_size (GTK_WINDOW (window), - 450, 450); + gtk_window_set_default_size (GTK_WINDOW (window), 450, 450); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); - gtk_window_set_title (GTK_WINDOW (window), "Hypertext"); gtk_container_set_border_width (GTK_CONTAINER (window), 0); view = gtk_text_view_new (); @@ -293,14 +292,9 @@ do_hypertext (GtkWidget *do_widget) } if (!gtk_widget_get_visible (window)) - { - gtk_widget_show (window); - } + gtk_widget_show (window); else - { - gtk_widget_destroy (window); - window = NULL; - } + gtk_widget_destroy (window); return window; } diff --git a/demos/gtk-demo/iconview.c b/demos/gtk-demo/iconview.c index 199a34316c..67cdabb43c 100644 --- a/demos/gtk-demo/iconview.c +++ b/demos/gtk-demo/iconview.c @@ -328,10 +328,7 @@ do_iconview (GtkWidget *do_widget) if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else - { - gtk_widget_destroy (window); - window = NULL; - } + gtk_widget_destroy (window); return window; } diff --git a/demos/gtk-demo/iconview_edit.c b/demos/gtk-demo/iconview_edit.c index 25bc80f02d..3d626fddb7 100644 --- a/demos/gtk-demo/iconview_edit.c +++ b/demos/gtk-demo/iconview_edit.c @@ -8,8 +8,6 @@ #include #include -static GtkWidget *window = NULL; - enum { COL_TEXT, @@ -100,6 +98,8 @@ edited (GtkCellRendererText *cell, GtkWidget * do_iconview_edit (GtkWidget *do_widget) { + static GtkWidget *window = NULL; + if (!window) { GtkWidget *icon_view; @@ -152,10 +152,7 @@ do_iconview_edit (GtkWidget *do_widget) if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else - { - gtk_widget_destroy (window); - window = NULL; - } + gtk_widget_destroy (window); return window; } diff --git a/demos/gtk-demo/images.c b/demos/gtk-demo/images.c index a36c8df2f7..2561c7d9bf 100644 --- a/demos/gtk-demo/images.c +++ b/demos/gtk-demo/images.c @@ -436,14 +436,9 @@ do_images (GtkWidget *do_widget) } if (!gtk_widget_get_visible (window)) - { - gtk_widget_show_all (window); - } + gtk_widget_show_all (window); else - { - gtk_widget_destroy (window); - window = NULL; - } + gtk_widget_destroy (window); return window; } diff --git a/demos/gtk-demo/infobar.c b/demos/gtk-demo/infobar.c index 7b0b5751c0..b16ed1bf38 100644 --- a/demos/gtk-demo/infobar.c +++ b/demos/gtk-demo/infobar.c @@ -6,14 +6,13 @@ #include #include -static GtkWidget *window = NULL; - static void on_bar_response (GtkInfoBar *info_bar, gint response_id, gpointer user_data) { GtkWidget *dialog; + GtkWidget *window; if (response_id == GTK_RESPONSE_CLOSE) { @@ -21,6 +20,7 @@ on_bar_response (GtkInfoBar *info_bar, return; } + window = gtk_widget_get_toplevel (GTK_WIDGET (info_bar)); dialog = gtk_message_dialog_new (GTK_WINDOW (window), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, @@ -40,6 +40,7 @@ on_bar_response (GtkInfoBar *info_bar, GtkWidget * do_infobar (GtkWidget *do_widget) { + static GtkWidget *window = NULL; GtkWidget *frame; GtkWidget *bar; GtkWidget *vbox; @@ -131,14 +132,9 @@ do_infobar (GtkWidget *do_widget) } if (!gtk_widget_get_visible (window)) - { - gtk_widget_show_all (window); - } + gtk_widget_show_all (window); else - { - gtk_widget_destroy (window); - window = NULL; - } + gtk_widget_destroy (window); return window; } diff --git a/demos/gtk-demo/links.c b/demos/gtk-demo/links.c index fa3075d225..5a39a1a842 100644 --- a/demos/gtk-demo/links.c +++ b/demos/gtk-demo/links.c @@ -44,11 +44,10 @@ activate_link (GtkWidget *label, return FALSE; } -static GtkWidget *window = NULL; - GtkWidget * do_links (GtkWidget *do_widget) { + static GtkWidget *window = NULL; GtkWidget *label; if (!window) @@ -78,14 +77,9 @@ do_links (GtkWidget *do_widget) } if (!gtk_widget_get_visible (window)) - { - gtk_widget_show (window); - } + gtk_widget_show (window); else - { - gtk_widget_destroy (window); - window = NULL; - } + gtk_widget_destroy (window); return window; } diff --git a/demos/gtk-demo/menus.c b/demos/gtk-demo/menus.c index 9e69afa6ad..86c435e86a 100644 --- a/demos/gtk-demo/menus.c +++ b/demos/gtk-demo/menus.c @@ -158,14 +158,9 @@ do_menus (GtkWidget *do_widget) } if (!gtk_widget_get_visible (window)) - { - gtk_widget_show (window); - } + gtk_widget_show (window); else - { - gtk_widget_destroy (window); - window = NULL; - } + gtk_widget_destroy (window); return window; } diff --git a/demos/gtk-demo/offscreen_window.c b/demos/gtk-demo/offscreen_window.c index 7c72194cf2..433cad1b84 100644 --- a/demos/gtk-demo/offscreen_window.c +++ b/demos/gtk-demo/offscreen_window.c @@ -565,11 +565,11 @@ scale_changed (GtkRange *range, gtk_rotated_bin_set_angle (bin, gtk_range_get_value (range)); } -static GtkWidget *window = NULL; - GtkWidget * do_offscreen_window (GtkWidget *do_widget) { + static GtkWidget *window = NULL; + if (!window) { GtkWidget *bin, *vbox, *scale, *button; @@ -603,10 +603,7 @@ do_offscreen_window (GtkWidget *do_widget) if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else - { - gtk_widget_destroy (window); - window = NULL; - } + gtk_widget_destroy (window); return window; } diff --git a/demos/gtk-demo/offscreen_window2.c b/demos/gtk-demo/offscreen_window2.c index b327f71052..50f77a2899 100644 --- a/demos/gtk-demo/offscreen_window2.c +++ b/demos/gtk-demo/offscreen_window2.c @@ -468,11 +468,11 @@ gtk_mirror_bin_draw (GtkWidget *widget, /*** ***/ -static GtkWidget *window = NULL; - GtkWidget * do_offscreen_window2 (GtkWidget *do_widget) { + static GtkWidget *window = NULL; + if (!window) { GtkWidget *bin, *vbox; @@ -516,10 +516,7 @@ do_offscreen_window2 (GtkWidget *do_widget) if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else - { - gtk_widget_destroy (window); - window = NULL; - } + gtk_widget_destroy (window); return window; } diff --git a/demos/gtk-demo/overlay.c b/demos/gtk-demo/overlay.c index f06da408e6..f6d67edd0a 100644 --- a/demos/gtk-demo/overlay.c +++ b/demos/gtk-demo/overlay.c @@ -77,14 +77,9 @@ do_overlay (GtkWidget *do_widget) } if (!gtk_widget_get_visible (window)) - { - gtk_widget_show (window); - } + gtk_widget_show (window); else - { - gtk_widget_destroy (window); - window = NULL; - } + gtk_widget_destroy (window); return window; } diff --git a/demos/gtk-demo/pagesetup.c b/demos/gtk-demo/pagesetup.c index 59709ab654..f169bae5c5 100644 --- a/demos/gtk-demo/pagesetup.c +++ b/demos/gtk-demo/pagesetup.c @@ -29,10 +29,7 @@ do_pagesetup (GtkWidget *do_widget) if (!gtk_widget_get_visible (window)) gtk_widget_show (window); else - { - gtk_widget_destroy (window); - window = NULL; - } + gtk_widget_destroy (window); return window; } diff --git a/demos/gtk-demo/panes.c b/demos/gtk-demo/panes.c index 97c7237b84..98cf8bc47b 100644 --- a/demos/gtk-demo/panes.c +++ b/demos/gtk-demo/panes.c @@ -192,14 +192,9 @@ do_panes (GtkWidget *do_widget) } if (!gtk_widget_get_visible (window)) - { - gtk_widget_show (window); - } + gtk_widget_show (window); else - { - gtk_widget_destroy (window); - window = NULL; - } + gtk_widget_destroy (window); return window; } diff --git a/demos/gtk-demo/pickers.c b/demos/gtk-demo/pickers.c index 46826b5707..db8ee77d65 100644 --- a/demos/gtk-demo/pickers.c +++ b/demos/gtk-demo/pickers.c @@ -20,8 +20,7 @@ do_pickers (GtkWidget *do_widget) gtk_window_set_title (GTK_WINDOW (window), "Pickers"); g_signal_connect (window, "destroy", - G_CALLBACK (gtk_widget_destroyed), - &window); + G_CALLBACK (gtk_widget_destroyed), &window); gtk_container_set_border_width (GTK_CONTAINER (window), 10); @@ -76,14 +75,9 @@ do_pickers (GtkWidget *do_widget) } if (!gtk_widget_get_visible (window)) - { - gtk_widget_show_all (window); - } + gtk_widget_show_all (window); else - { - gtk_widget_destroy (window); - window = NULL; - } + gtk_widget_destroy (window); return window; } diff --git a/demos/gtk-demo/pixbufs.c b/demos/gtk-demo/pixbufs.c index d220b7557f..e4faae4e6b 100644 --- a/demos/gtk-demo/pixbufs.c +++ b/demos/gtk-demo/pixbufs.c @@ -183,7 +183,6 @@ do_pixbufs (GtkWidget *do_widget) g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); - error = NULL; if (!load_pixbufs (&error)) { @@ -221,13 +220,10 @@ do_pixbufs (GtkWidget *do_widget) } if (!gtk_widget_get_visible (window)) - { - gtk_widget_show_all (window); - } + gtk_widget_show_all (window); else { gtk_widget_destroy (window); - window = NULL; g_object_unref (frame); } diff --git a/demos/gtk-demo/popover.c b/demos/gtk-demo/popover.c index cb2c6b9765..94c376b6b6 100644 --- a/demos/gtk-demo/popover.c +++ b/demos/gtk-demo/popover.c @@ -176,10 +176,7 @@ do_popover (GtkWidget *do_widget) if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else - { - gtk_widget_destroy (window); - window = NULL; - } + gtk_widget_destroy (window); return window; } diff --git a/demos/gtk-demo/revealer.c b/demos/gtk-demo/revealer.c index 703223acba..23092d059a 100644 --- a/demos/gtk-demo/revealer.c +++ b/demos/gtk-demo/revealer.c @@ -6,8 +6,8 @@ #include -static GtkBuilder *builder; static gint count = 0; +static guint timeout = 0; static void change_direction (GtkRevealer *revealer) @@ -18,14 +18,15 @@ change_direction (GtkRevealer *revealer) gtk_revealer_set_reveal_child (revealer, !revealed); } -static guint timeout = 0; - static gboolean reveal_one (gpointer data) { + GtkWidget *window = data; + GtkBuilder *builder; gchar *name; GtkRevealer *revealer; + builder = GTK_BUILDER (g_object_get_data (G_OBJECT (window), "builder")); name = g_strdup_printf ("revealer%d", count); revealer = (GtkRevealer *)gtk_builder_get_object (builder, name); @@ -44,53 +45,45 @@ reveal_one (gpointer data) return TRUE; } +static GtkWidget *window = NULL; + static void -response_cb (GtkWidget *dialog, - gint response_id, - gpointer data) +on_destroy (gpointer data) { + window = NULL; if (timeout != 0) { g_source_remove (timeout); timeout = 0; } - gtk_widget_destroy (dialog); } GtkWidget * do_revealer (GtkWidget *do_widget) { - static GtkWidget *window = NULL; - GError *err = NULL; - if (!window) { - builder = gtk_builder_new (); - gtk_builder_add_from_resource (builder, "/revealer/revealer.ui", &err); - if (err) - { - g_error ("ERROR: %s\n", err->message); - return NULL; - } + GtkBuilder *builder; + + builder = gtk_builder_new_from_resource ("/revealer/revealer.ui"); gtk_builder_connect_signals (builder, NULL); - window = GTK_WIDGET (gtk_builder_get_object (builder, "dialog1")); + window = GTK_WIDGET (gtk_builder_get_object (builder, "window")); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); g_signal_connect (window, "destroy", - G_CALLBACK (gtk_widget_destroyed), &window); - g_signal_connect (window, "response", G_CALLBACK (response_cb), NULL); + G_CALLBACK (on_destroy), NULL); + g_object_set_data_full (G_OBJECT (window), "builder", builder, g_object_unref); } if (!gtk_widget_get_visible (window)) { count = 0; - timeout = g_timeout_add (690, reveal_one, NULL); + timeout = g_timeout_add (690, reveal_one, window); gtk_widget_show_all (window); } else { gtk_widget_destroy (window); - window = NULL; } diff --git a/demos/gtk-demo/revealer.ui b/demos/gtk-demo/revealer.ui index f1cbac007d..356b2606b0 100644 --- a/demos/gtk-demo/revealer.ui +++ b/demos/gtk-demo/revealer.ui @@ -1,223 +1,177 @@ - - False + 5 - dialog 300 300 Revealer - - - False - vertical - 2 - - - False - end + + + True + center + center + + + True + 2000 + crossfade - - _Close + True - True - True - True + face-cool-symbolic + 6 - - False - True - 1 - - False - True - end - 0 + 2 + 2 - + True - False - center - center - - - True - 2000 - crossfade - - - True - face-cool-symbolic - 6 - - - - - 2 - 2 - - + 2000 + slide-up - + True - 2000 - slide-up - - - True - face-cool-symbolic - 6 - - + face-cool-symbolic + 6 - - 2 - 1 - + + + 2 + 1 + + + + + True + 2000 + slide-right - + True - 2000 - slide-right - - - True - face-cool-symbolic - 6 - - + face-cool-symbolic + 6 - - 3 - 2 - + + + 3 + 2 + + + + + True + 2000 - + True - 2000 - slide-down - - - True - face-cool-symbolic - 6 - - + face-cool-symbolic + 6 - - 2 - 3 - + + + 2 + 3 + + + + + True + 2000 + slide-left - + True - 2000 - slide-left - - - True - face-cool-symbolic - 6 - - + face-cool-symbolic + 6 - - 1 - 2 - + + + 1 + 2 + + + + + True + 2000 + slide-up - + True - 2000 - slide-up - - - True - face-cool-symbolic - 6 - - + face-cool-symbolic + 6 - - 2 - 0 - + + + 2 + 0 + + + + + True + 2000 + slide-right - + True - 2000 - slide-right - - - True - face-cool-symbolic - 6 - - + face-cool-symbolic + 6 - - 4 - 2 - + + + 4 + 2 + + + + + True + 2000 - + True - 2000 - slide-down - - - True - face-cool-symbolic - 6 - - + face-cool-symbolic + 6 - - 2 - 4 - + + + 2 + 4 + + + + + True + 2000 + slide-left - + True - 2000 - slide-left - - - True - face-cool-symbolic - 6 - - + face-cool-symbolic + 6 - - 0 - 2 - - False - True - 1 + 0 + 2 - - button1 - diff --git a/demos/gtk-demo/rotated_text.c b/demos/gtk-demo/rotated_text.c index 8b4ecb23b2..6afe6ca4d6 100644 --- a/demos/gtk-demo/rotated_text.c +++ b/demos/gtk-demo/rotated_text.c @@ -11,8 +11,6 @@ #include #include -static GtkWidget *window = NULL; - #define HEART "♥" const char text[] = "I ♥ GTK+"; @@ -173,6 +171,8 @@ rotated_text_draw (GtkWidget *widget, GtkWidget * do_rotated_text (GtkWidget *do_widget) { + static GtkWidget *window = NULL; + if (!window) { GtkWidget *box; @@ -186,7 +186,8 @@ do_rotated_text (GtkWidget *do_widget) gtk_widget_get_screen (do_widget)); gtk_window_set_title (GTK_WINDOW (window), "Rotated Text"); gtk_window_set_default_size (GTK_WINDOW (window), 4 * RADIUS, 2 * RADIUS); - g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); + g_signal_connect (window, "destroy", + G_CALLBACK (gtk_widget_destroyed), &window); box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_set_homogeneous (GTK_BOX (box), TRUE); @@ -218,14 +219,9 @@ do_rotated_text (GtkWidget *do_widget) } if (!gtk_widget_get_visible (window)) - { - gtk_widget_show_all (window); - } + gtk_widget_show_all (window); else - { - gtk_widget_destroy (window); - window = NULL; - } + gtk_widget_destroy (window); return window; } diff --git a/demos/gtk-demo/search_entry.c b/demos/gtk-demo/search_entry.c index 5594118bed..3e61e2de6a 100644 --- a/demos/gtk-demo/search_entry.c +++ b/demos/gtk-demo/search_entry.c @@ -167,7 +167,7 @@ activate_cb (GtkEntry *entry, } static void -search_entry_destroyed (GtkWidget *widget) +search_entry_destroyed (GtkWidget *widget) { if (finish_search_id != 0) g_source_remove (finish_search_id); @@ -210,34 +210,24 @@ entry_populate_popup (GtkEntry *entry, GtkWidget * do_search_entry (GtkWidget *do_widget) { - GtkWidget *content_area; GtkWidget *vbox; GtkWidget *hbox; GtkWidget *label; GtkWidget *entry; - GtkWidget *button; GtkWidget *find_button; GtkWidget *cancel_button; if (!window) { - window = gtk_dialog_new_with_buttons ("Search Entry", - GTK_WINDOW (do_widget), - 0, - _("_Close"), - GTK_RESPONSE_NONE, - NULL); + window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); + gtk_window_set_title (GTK_WINDOW (window), "Search Entry"); gtk_window_set_resizable (GTK_WINDOW (window), FALSE); - - g_signal_connect (window, "response", - G_CALLBACK (gtk_widget_destroy), NULL); g_signal_connect (window, "destroy", G_CALLBACK (search_entry_destroyed), &window); - content_area = gtk_dialog_get_content_area (GTK_DIALOG (window)); - vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); - gtk_box_pack_start (GTK_BOX (content_area), vbox, TRUE, TRUE, 0); + gtk_container_add (GTK_CONTAINER (window), vbox); gtk_container_set_border_width (GTK_CONTAINER (vbox), 5); label = gtk_label_new (NULL); @@ -284,12 +274,9 @@ do_search_entry (GtkWidget *do_widget) gtk_menu_attach_to_widget (GTK_MENU (menu), entry, NULL); /* add accessible alternatives for icon functionality */ + g_object_set (entry, "populate-all", TRUE, NULL); g_signal_connect (entry, "populate-popup", G_CALLBACK (entry_populate_popup), NULL); - - /* Give the focus to the close button */ - button = gtk_dialog_get_widget_for_response (GTK_DIALOG (window), GTK_RESPONSE_NONE); - gtk_widget_grab_focus (button); } if (!gtk_widget_get_visible (window)) @@ -298,7 +285,6 @@ do_search_entry (GtkWidget *do_widget) { gtk_widget_destroy (menu); gtk_widget_destroy (window); - window = NULL; } return window; diff --git a/demos/gtk-demo/search_entry2.c b/demos/gtk-demo/search_entry2.c index 988eaace23..b20cb13dea 100644 --- a/demos/gtk-demo/search_entry2.c +++ b/demos/gtk-demo/search_entry2.c @@ -8,14 +8,6 @@ #include -static GtkWidget *window = NULL; - -static void -search_entry_destroyed (GtkWidget *widget) -{ - window = NULL; -} - static void search_changed_cb (GtkSearchEntry *entry, GtkLabel *result_label) @@ -73,6 +65,7 @@ stop_search (GtkSearchEntry *entry, GtkWidget * do_search_entry2 (GtkWidget *do_widget) { + static GtkWidget *window = NULL; GtkWidget *vbox; GtkWidget *hbox; GtkWidget *label; @@ -90,7 +83,7 @@ do_search_entry2 (GtkWidget *do_widget) gtk_widget_set_size_request (window, 200, -1); g_signal_connect (window, "destroy", - G_CALLBACK (search_entry_destroyed), &window); + G_CALLBACK (gtk_widget_destroyed), &window); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (window), vbox); @@ -164,10 +157,7 @@ do_search_entry2 (GtkWidget *do_widget) if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else - { - gtk_widget_destroy (window); - window = NULL; - } + gtk_widget_destroy (window); return window; } diff --git a/demos/gtk-demo/sidebar.c b/demos/gtk-demo/sidebar.c index 61f4dcf386..6830accfb6 100644 --- a/demos/gtk-demo/sidebar.c +++ b/demos/gtk-demo/sidebar.c @@ -9,11 +9,10 @@ #include #include -static GtkWidget *window = NULL; - GtkWidget * do_sidebar (GtkWidget *do_widget) { + static GtkWidget *window = NULL; GtkWidget *sidebar; GtkWidget *stack; GtkWidget *box; diff --git a/demos/gtk-demo/sizegroup.c b/demos/gtk-demo/sizegroup.c index d99cc8a0b7..1a639244a7 100644 --- a/demos/gtk-demo/sizegroup.c +++ b/demos/gtk-demo/sizegroup.c @@ -16,8 +16,6 @@ #include #include -static GtkWidget *window = NULL; - /* Convenience function to create a combo box holding a number of strings */ GtkWidget * @@ -48,12 +46,14 @@ add_row (GtkGrid *table, label = gtk_label_new_with_mnemonic (label_text); gtk_widget_set_halign (label, GTK_ALIGN_START); - gtk_widget_set_valign (label, GTK_ALIGN_END); + gtk_widget_set_valign (label, GTK_ALIGN_BASELINE); gtk_widget_set_hexpand (label, TRUE); gtk_grid_attach (table, label, 0, row, 1, 1); combo_box = create_combo_box (options); gtk_label_set_mnemonic_widget (GTK_LABEL (label), combo_box); + gtk_widget_set_halign (combo_box, GTK_ALIGN_END); + gtk_widget_set_valign (combo_box, GTK_ALIGN_BASELINE); gtk_size_group_add_widget (size_group, combo_box); gtk_grid_attach (table, combo_box, 1, row, 1, 1); } @@ -79,7 +79,7 @@ toggle_grouping (GtkToggleButton *check_button, GtkWidget * do_sizegroup (GtkWidget *do_widget) { - GtkWidget *content_area; + static GtkWidget *window = NULL; GtkWidget *table; GtkWidget *frame; GtkWidget *vbox; @@ -95,28 +95,20 @@ do_sizegroup (GtkWidget *do_widget) }; static const char *end_options[] = { - "Square", "Round", "Arrow", NULL + "Square", "Round", "Double Arrow", NULL }; if (!window) { - window = gtk_dialog_new_with_buttons ("Size Groups", - GTK_WINDOW (do_widget), - 0, - _("_Close"), - GTK_RESPONSE_NONE, - NULL); + window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); + gtk_window_set_title (GTK_WINDOW (window), "Size Groups"); gtk_window_set_resizable (GTK_WINDOW (window), FALSE); - - g_signal_connect (window, "response", - G_CALLBACK (gtk_widget_destroy), NULL); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); - content_area = gtk_dialog_get_content_area (GTK_DIALOG (window)); - vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); - gtk_box_pack_start (GTK_BOX (content_area), vbox, TRUE, TRUE, 0); + gtk_container_add (GTK_CONTAINER (window), vbox); gtk_container_set_border_width (GTK_CONTAINER (vbox), 5); size_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); diff --git a/demos/gtk-demo/spinner.c b/demos/gtk-demo/spinner.c index c0690a6e75..c368c20fbb 100644 --- a/demos/gtk-demo/spinner.c +++ b/demos/gtk-demo/spinner.c @@ -7,7 +7,6 @@ #include #include -static GtkWidget *window = NULL; static GtkWidget *spinner_sensitive = NULL; static GtkWidget *spinner_unsensitive = NULL; @@ -28,6 +27,7 @@ on_stop_clicked (GtkButton *button, gpointer user_data) GtkWidget * do_spinner (GtkWidget *do_widget) { + static GtkWidget *window = NULL; GtkWidget *content_area; GtkWidget *vbox; GtkWidget *hbox; diff --git a/demos/gtk-demo/stack.c b/demos/gtk-demo/stack.c index d536187943..6a82cb7c72 100644 --- a/demos/gtk-demo/stack.c +++ b/demos/gtk-demo/stack.c @@ -8,8 +8,6 @@ #include -static GtkBuilder *builder; - GtkWidget * do_stack (GtkWidget *do_widget) { @@ -17,6 +15,8 @@ do_stack (GtkWidget *do_widget) if (!window) { + GtkBuilder *builder; + builder = gtk_builder_new_from_resource ("/stack/stack.ui"); gtk_builder_connect_signals (builder, NULL); window = GTK_WIDGET (gtk_builder_get_object (builder, "window1")); @@ -24,17 +24,14 @@ do_stack (GtkWidget *do_widget) gtk_widget_get_screen (do_widget)); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); + + g_object_unref (builder); } if (!gtk_widget_get_visible (window)) - { - gtk_widget_show_all (window); - } + gtk_widget_show_all (window); else - { - gtk_widget_destroy (window); - window = NULL; - } + gtk_widget_destroy (window); return window; diff --git a/demos/gtk-demo/theming_style_classes.c b/demos/gtk-demo/theming_style_classes.c index fa9cded39a..ad8db28957 100644 --- a/demos/gtk-demo/theming_style_classes.c +++ b/demos/gtk-demo/theming_style_classes.c @@ -17,7 +17,6 @@ do_theming_style_classes (GtkWidget *do_widget) { GtkWidget *grid; GtkBuilder *builder; - GError *err = NULL; if (!window) { @@ -29,13 +28,7 @@ do_theming_style_classes (GtkWidget *do_widget) g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); - builder = gtk_builder_new (); - gtk_builder_add_from_resource (builder, "/theming_style_classes/theming.ui", NULL); - if (err) - { - g_error ("ERROR: %s\n", err->message); - return NULL; - } + builder = gtk_builder_new_from_resource ("/theming_style_classes/theming.ui"); grid = (GtkWidget *)gtk_builder_get_object (builder, "grid"); gtk_widget_show_all (grid); @@ -44,14 +37,9 @@ do_theming_style_classes (GtkWidget *do_widget) } if (!gtk_widget_get_visible (window)) - { - gtk_widget_show (window); - } + gtk_widget_show (window); else - { - gtk_widget_destroy (window); - window = NULL; - } + gtk_widget_destroy (window); return window; } diff --git a/demos/gtk-demo/transparent.c b/demos/gtk-demo/transparent.c index ea685a1a5f..f156ff20e2 100644 --- a/demos/gtk-demo/transparent.c +++ b/demos/gtk-demo/transparent.c @@ -196,8 +196,7 @@ do_transparent (GtkWidget *do_widget) window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (do_widget)); - gtk_window_set_default_size (GTK_WINDOW (window), - 450, 450); + gtk_window_set_default_size (GTK_WINDOW (window), 450, 450); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); @@ -235,14 +234,9 @@ do_transparent (GtkWidget *do_widget) } if (!gtk_widget_get_visible (window)) - { - gtk_widget_show (window); - } + gtk_widget_show (window); else - { - gtk_widget_destroy (window); - window = NULL; - } + gtk_widget_destroy (window); return window; } diff --git a/demos/gtk-demo/tree_store.c b/demos/gtk-demo/tree_store.c index 3706e4dfb5..228b21d557 100644 --- a/demos/gtk-demo/tree_store.c +++ b/demos/gtk-demo/tree_store.c @@ -10,8 +10,6 @@ #include -static GtkWidget *window = NULL; - /* TreeItem structure */ typedef struct _TreeItem TreeItem; struct _TreeItem @@ -387,6 +385,8 @@ add_columns (GtkTreeView *treeview) GtkWidget * do_tree_store (GtkWidget *do_widget) { + static GtkWidget *window = NULL; + if (!window) { GtkWidget *vbox; @@ -440,10 +440,7 @@ do_tree_store (GtkWidget *do_widget) if (!gtk_widget_get_visible (window)) gtk_widget_show_all (window); else - { - gtk_widget_destroy (window); - window = NULL; - } + gtk_widget_destroy (window); return window; } -- 2.30.2